home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1990: Discy Business / Discy Business.2mg / DEV.CD / GUIDED.TOURS / IIC.PLUS.TOUR / BASIC / PRINT (.txt) < prev    next >
Encoding:
Applesoft BASIC Source Code  |  1986-03-04  |  7.3 KB  |  133 lines  |  [FC] Applesoft BASIC Program (0x0801)

  1. 0  ONERR  GOTO 1211
  2. 1  LET IN$ = "X":TT = 0:BT = 24:M = 0: GOSUB 521: GOSUB 621: HOME :F$ = "PRINT.TEXT": GOSUB 1181: GOSUB 551: GOSUB 471: GOSUB 551: GOSUB 471:TT = 15:BT = 24: POKE 32,0: VTAB 18: HTAB 1: PRINT  CHR$(93);: GOSUB 621: VTAB 18: SPEED= 10: GOSUB 721: SPEED= 255:M = 3: VTAB 19: HTAB 20: PRINT "(You press RETURN)";: GOSUB 471: VTAB 19: HTAB 5: CALL  -868: HTAB 1: PRINT NU:TT = 0:BT = 15: GOSUB 621:M = 0
  3. 11  GOSUB 551: GOSUB 471: GOSUB 551: GOSUB 471:TT = 15:BT = 24: GOSUB 611: GOSUB 551
  4. 21 TT = 15:BT = 24: GOSUB 611: GOSUB 621: VTAB 16: GOSUB 641:W = 38:B = 9:T = 3:L = 1:X = 1: GOSUB 741: IF E = 1  THEN  GOSUB 631: PRINT "Please type PRINT and a number,": PRINT "then press RETURN.": GOTO 21
  5. 31 BS = X: GOSUB 781: ON E = 1 GOTO 21
  6. 41  GOSUB 741: IF E = 1  THEN  GOSUB 631: PRINT "You typed "; MID$ (AN$,BS);".": PRINT "Don't be shy.  Please type PRINT": PRINT "and follow it with a number.": GOTO 21
  7. 45  IF  MID$ (AN$,X) = ""  THEN  GOSUB 631: PRINT "You typed "; MID$ (AN$,BS);".": PRINT "You should follow PRINT with": PRINT "some number.  Please try again.": GOTO 21
  8. 51 Z = 0:FI$ =  MID$ (AN$,X):NU$ =  MID$ (AN$,X):EN =  LEN(FI$): GOSUB 971: IF E < >1  AND E < >2 GOTO 81
  9. 61  IF E = 1  THEN  GOSUB 631: PRINT "You typed "; MID$ (AN$,BS);".": PRINT "You shouldn't use letters or": PRINT "symbols (except - or .) in your": PRINT "numbers.  Please try again.": GOTO 21
  10. 71  IF E = 2  THEN  GOSUB 631: PRINT "Although the Apple II can handle": PRINT "numbers up to 38 characters long,": PRINT "this simulation will only handle": PRINT "numbers up to 8 characters long.": GOTO 21
  11. 81  IF  MID$ (AN$,X,1) = "0"  THEN Z = 1
  12. 91 NU =  VAL(FI$): IF NU = 0  AND Z < >1  THEN  GOSUB 631: PRINT "You typed "; MID$ (AN$,BS);".": PRINT "You should follow PRINT with some": PRINT "number so that you can continue": PRINT "with the lesson.": GOTO 21
  13. 101  VTAB 17: HTAB 1: PRINT NU: GOSUB 631: PRINT "You did very well, ";NA$".": PRINT "Would you like to practice using": PRINT "the PRINT statement again? (Y/N)";
  14. 111 CP = 1: GOSUB 641: IF AN$ = ""  THEN  VTAB 6: HTAB 33: CALL  -958: GOTO 111
  15. 121  IF  ASC(AN$) < >89  AND  ASC(AN$) < >78  THEN  VTAB 6: HTAB 33: CALL  -958: GOTO 111
  16. 131 CP = 0: IF  ASC(AN$) = 89  THEN  GOSUB 611: GOSUB 531: HTAB L: VTAB T +1: PRINT "Okay, type PRINT and follow it": PRINT "with a number (remember to": PRINT "press RETURN).": GOTO 21
  17. 141 TT = 15:BT = 24: GOSUB 611:TT = 0:BT = 15: GOSUB 621: GOSUB 551: GOSUB 471: GOSUB 551: GOSUB 471: GOSUB 551: GOSUB 471:TT = 15:BT = 24: GOSUB 621: HTAB 1: VTAB 18: PRINT "]";: SPEED= 10: GOSUB 731: SPEED= 255: VTAB 19: HTAB 19: PRINT "(Please press RETURN)": GOSUB 471: VTAB 19: HTAB 5: CALL  -868: HTAB 1: PRINT NU:TT = 0:BT = 15: VTAB BT: GOSUB 551: GOSUB 471:TT = 15:BT = 24: GOSUB 611:TT = 0:BT = 15: GOSUB 551
  18. 151 SY$(1) = "+":SY$(2) = "=":SY$(3) = "-":SY$(4) = "_":SY$(5) = "*":SY$(6) = "/":SY$(7) = "?":SN = 1
  19. 161 SY$ = "":TT = 10:BT = 15: GOSUB 611: VTAB 12: GOSUB 641:TT = 10:BT = 15:X = 1:N(1) = 0:N(2) = 0: GOSUB 741
  20. 171  IF E = 1  THEN  GOSUB 631: PRINT "Type PRINT, then type": PRINT "a calculation with two": PRINT "numbers.": GOTO 161
  21. 181 BS = X: GOSUB 781: ON E = 1 GOTO 161
  22. 191  GOSUB 741: IF E = 1  THEN  GOSUB 631: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "It would help if you would type": PRINT "in some numbers after PRINT.": PRINT "Please try again.": GOTO 161
  23. 201  IF  MID$ (AN$,X,1) = "-"  THEN X = X +1:N(1) = 1
  24. 211  IF X > LEN(AN$)  THEN E = 1: GOTO 171
  25. 221  GOSUB 811: IF SN = 1  AND SY$ < >"+"  THEN  GOSUB 631: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "For this to work, you must use": PRINT "the correct symbol (+).  Please": PRINT "try again.": GOTO 161
  26. 231  IF E < >1  AND E < >2  AND E < >3 GOTO 271
  27. 241  IF E = 2  THEN  GOSUB 631: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "For this to work, you must use": PRINT "one of the symbols below.": PRINT "Please try again.": GOTO 161
  28. 251  IF E = 3  THEN  GOSUB 631: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "You found the right key, but": PRINT "forgot to press SHIFT key.": PRINT "Please try again.": GOTO 161
  29. 261  IF E = 1  THEN  GOSUB 631: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "You should not have pressed the": PRINT "SHIFT key when you typed the": PRINT "symbol.  Please try again.": GOTO 161
  30. 271  GOSUB 911: IF E = 1  THEN  GOSUB 631: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "Please type in both numbers.": PRINT "Try again.": GOTO 161
  31. 281  GOSUB 961: ON E < >1  AND E < >2 GOTO 321
  32. 291  IF E = 1  THEN  GOSUB 631: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "You shouldn't use letters or": PRINT "symbols (except - or .) in your": PRINT "numbers.  Please try again.": GOTO 161
  33. 301  IF E = 2  AND SY$ < >"*"  THEN  GOSUB 631: PRINT "Although the Apple II can handle": PRINT "numbers up to 38 characters long,": PRINT "this simulation will only handle": PRINT "numbers up to 8 characters long.": GOTO 161
  34. 311  IF E = 2  AND SY$ = "*"  THEN  GOSUB 631: PRINT "Although the Apple II can handle": PRINT "numbers up to 38 characters long,": PRINT "this simulation will only handle": PRINT "numbers up to 4 characters long.": GOTO 161
  35. 321 AN$ =  MID$ (AN$,X):X = SL +1: IF E = 3  THEN  GOSUB 631: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "It would help if you would type": PRINT "in both numbers. Please try again.": GOTO 161
  36. 331  GOSUB 741: IF E = 1  THEN  GOSUB 631: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "It would help if you would type": PRINT "in both numbers. Please try again.": GOTO 161
  37. 341  IF  LEFT$(ST$,1) = "-"  THEN X = X +1:N(2) = 1:ZC = 1
  38. 351  GOSUB 1011: ON E = 1  OR E = 2  OR E = 3 GOTO 291: GOSUB 1091: ON DE < >1 GOTO 371
  39. 361  GOSUB 631: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "Dividing by 0 will cause an error": PRINT "message.  Please try again.":DE = 0: GOTO 161
  40. 371  VTAB 13: HTAB 1: PRINT FS: IF SN < >1  THEN 401
  41. 381  GOSUB 631: PRINT "Very good!  As you might guess,": PRINT "the computer can handle other": PRINT "operations.  The box below": PRINT "shows you the symbols."
  42. 391 T = 17:B = 23: GOSUB 531: VTAB T +1: HTAB 1: PRINT "Addition       + (PRINT 23 + 48)": PRINT "Subtraction    - (PRINT 20 -  2)": PRINT "Multiplication * (PRINT  4 * 12)": PRINT "Division       / (PRINT 16 /  4)":B = 9: GOSUB 471:T = 3:B = 9: GOTO 411
  43. 401  IF SN < >1  THEN  GOSUB 631: PRINT "And there is the answer.": PRINT "Would you like to practice": PRINT "some other calculations? (Y/N)";: GOTO 431
  44. 411  GOSUB 631: PRINT : PRINT "Would you like to practice": PRINT "some other calculations? (Y/N)";
  45. 421 CP = 1: GOSUB 641: IF AN$ = ""  THEN  VTAB 6: HTAB 31: CALL  -958: GOTO 421
  46. 431  IF  ASC(AN$) < >89  AND  ASC(AN$) < >78  THEN  VTAB 6: HTAB 31: CALL  -958: GOTO 421
  47. 441 CP = 0:SN = SN +1: IF  ASC(AN$) = 78  THEN 461
  48. 451 SY$ = "-": GOSUB 631: PRINT "Okay, type in any calculation": PRINT "using one of the math symbols": PRINT "below (don't forget to start with": PRINT "PRINT).": GOTO 161
  49. 461 TT = 0:BT = 24: GOSUB 611: POKE 929,1: GOSUB 551: GOSUB 471:TT = 0:BT = 24: GOSUB 611: GOSUB 1191: PRINT : PRINT  CHR$(4);"RUN WORDS": GOSUB 471: GOSUB 1191: GOTO 1171
  50. 471  POKE  -16368,0
  51. 481 P =  PEEK( -16384):TE = TE +1: ON P = 155 GOTO 1201: ON P < >13 GOTO 491: IF TE <225  THEN 481
  52. 491  IF P = 141  THEN TE = 0: CALL  -998: RETURN 
  53. 501 M$ = "Press RETURN": GOSUB 511: GOSUB 503: GOSUB 510: GOSUB 503: GOTO 501
  54. 503 Z = 55
  55. 504 P =  PEEK( -16384): IF P >127  THEN  POKE  -16368,0: GOTO 507
  56. 505 Z = Z -1: IF Z  THEN 504
  57. 506  RETURN 
  58. 507  IF P = 155  THEN  GOSUB 510: POP : POP : GOTO 1201
  59. 508  IF P = 141  THEN  GOSUB 510: POP : GOTO 491
  60. 509  GOTO 505
  61. 510 M$ = "_____________"
  62. 511  VTAB B: HTAB M +(((W -L) - LEN(M$))/2): PRINT M$;: RETURN 
  63. 521  PRINT  CHR$(4);"OPEN CALLNAME": PRINT  CHR$(4);"READ CALLNAME": INPUT NA$: PRINT  CHR$(4);"CLOSE CALLNAME": RETURN 
  64. 531  POKE 34,T -2: POKE 35,B: POKE 32,L: POKE 33,W +1: HOME : FOR BD = 2 TO W -1: VTAB T -1: HTAB BD: PRINT "_";: VTAB B: HTAB BD: PRINT "_";: NEXT BD: FOR BD = T TO B: VTAB BD: HTAB 1: PRINT "|";: HTAB W: PRINT "|";: NEXT BD
  65. 541  POKE 34,T: POKE 35,B -1: POKE 32,L +2: POKE 33,W -4: HOME : RETURN 
  66. 551  PRINT  CHR$(4);"READ ";F$:S$ = "":A$ = "":NL = 1: INPUT S$: IF S$ = "%"  THEN  GOSUB 611: INPUT T,B,L,W: GOSUB 531: GOTO 581
  67. 561  IF S$ = "&"  THEN  GOSUB 541
  68. 571  FOR H = T +1 TO B -1: VTAB H: HTAB 1: CALL  -868: NEXT H
  69. 581  CALL 813:IN$ =  MID$ (IN$,1): IF IN$ = "^"  THEN 601
  70. 591  VTAB T +NL: HTAB 1:NL = NL +1: PRINT IN$;: GOTO 581
  71. 601  RETURN 
  72. 611  POKE 32,0: POKE 33,40: POKE 34,TT: POKE 35,BT: HOME : RETURN 
  73. 621  POKE 32,0: POKE 33,40: POKE 34,TT: POKE 35,BT: RETURN 
  74. 631 TT = 0:BT = 10: GOSUB 621: GOSUB 541: HTAB L: VTAB T +1: FOR H = T +1 TO B -1: VTAB H: HTAB 1: CALL  -868: NEXT H: VTAB T +1: RETURN 
  75. 641  PRINT  CHR$(4): POKE  -16368,0:AN$ = "": ON CP = 1 GOTO 661
  76. 651  HTAB 1: PRINT  CHR$(93);
  77. 661 R = 0: CALL 768: FOR J = 512 TO 736:X =  PEEK(J): ON X = 155 GOTO 1201: IF X = 141  THEN J = 736: GOTO 711
  78. 671  IF X = 162  THEN R = 1
  79. 681  IF R = 1  THEN 701
  80. 691 AN$ = AN$ + CHR$(X -128 -32 *(X >223)): GOTO 711
  81. 701 AN$ = AN$ + CHR$(X -128)
  82. 711  NEXT J:BU$ = AN$: RETURN 
  83. 721 NU =  INT( RND(1) *100 +1): HTAB 2: PRINT "PRINT ";NU;: RETURN 
  84. 731 NU = 784: HTAB 2: PRINT "PRINT 345 + 439": RETURN 
  85. 741 E = 0
  86. 751  ON  MID$ (AN$,X,1) < >" " GOTO 771: IF X > =  LEN(AN$)  THEN E = 1: RETURN 
  87. 761 X = X +1: GOTO 751
  88. 771  RETURN 
  89. 781 E = 0: IF  MID$ (AN$,X,1) = "?"  THEN X = X +1: RETURN 
  90. 791 E = 0: IF  MID$ (AN$,X,5) = "PRINT"  THEN X = X +5: RETURN 
  91. 801 E = 1:TT = 0:BT = 10: GOSUB 631: HTAB L: VTAB T +1: PRINT "You typed "; MID$ (AN$,BS);".": PRINT "You didn't use PRINT.": PRINT "Please try again.": RETURN 
  92. 811 J = 0:E = 0:SP = 1:NU$ =  MID$ (AN$,X): FOR SP = 1 TO  LEN(NU$): FOR A = 1 TO 7: IF  MID$ (NU$,SP,1) = SY$(A)  THEN SL = SP:A = 7:SP =  LEN(NU$): GOTO 831
  93. 821  IF SP =  LEN(NU$)  THEN E = 2:A = 7
  94. 831  NEXT A: NEXT SP: IF E < >2 GOTO 871
  95. 841  FOR A = 1 TO 7: IF  RIGHT$(NU$,1) = SY$(A)  THEN J = 1
  96. 851  NEXT A: IF J = 1  THEN E = 0
  97. 861  GOTO 901
  98. 871 MS$ =  MID$ (NU$,SL,1): IF MS$ = "_"  OR MS$ = "?"  THEN E = 1
  99. 881  IF MS$ = "="  THEN E = 3
  100. 891  IF E < >1  AND E < >2  AND E < >3  THEN SY$ = MS$
  101. 901  RETURN 
  102. 911 E = 0:EN = SL -1
  103. 921  IF EN < = 0  THEN E = 1: RETURN 
  104. 931  IF  MID$ (NU$,EN,1) < >" "  THEN 951
  105. 941 EN = EN -1: GOTO 921
  106. 951  RETURN 
  107. 961 E = 0:FI$ =  LEFT$(NU$,EN): IF SY$ = "*"  AND  LEN(FI$) >4  THEN E = 2: RETURN 
  108. 971  IF  LEN(FI$) >8  THEN E = 2: RETURN 
  109. 981  FOR Y = 1 TO EN:T$ =  MID$ (NU$,Y): IF  ASC(T$) < >45  AND  ASC(T$) < >32  AND  ASC(T$) < >46  AND  ASC(T$) < = 47  OR  ASC(T$) > = 58  THEN E = 1
  110. 991  NEXT Y: IF E < >1  THEN FI =  VAL(FI$)
  111. 1001  RETURN 
  112. 1011 ST$ =  MID$ (AN$,X):E = 0: IF SY$ = "*"  AND  LEN( MID$ (AN$,X)) >4  THEN E = 2: RETURN 
  113. 1021  IF  LEN( MID$ (AN$,X)) >8  THEN E = 2: RETURN 
  114. 1031  IF  LEN( MID$ (AN$,X)) = 1  AND  MID$ (AN$,X) = "-"  THEN E = 3: RETURN 
  115. 1041  IF  LEN( MID$ (AN$,X)) = 0  THEN E = 3: RETURN 
  116. 1051 NU$ =  MID$ (AN$,X):SL =  LEN(NU$): FOR Y =  LEN(NU$) TO 1  STEP  -1: IF  MID$ (NU$,Y,1) = " "  THEN SL = SL -1
  117. 1061  NEXT Y: FOR Y = 1 TO SL:T$ =  MID$ (NU$,Y): IF  ASC(T$) < >32  AND  ASC(T$) < >45  AND  ASC(T$) < >46  AND  ASC(T$) < = 47  OR  ASC(T$) > = 58  THEN E = 1
  118. 1071  NEXT Y: IF E < >1  THEN SE =  VAL(NU$)
  119. 1081  RETURN 
  120. 1091 SY$ = MS$: IF N(1) = 1  THEN FI = FI * -1
  121. 1101  IF N(2) = 1  THEN SE = SE * -1
  122. 1111  IF SY$ = "+"  THEN FS = FI +SE
  123. 1121  IF SY$ = "-"  THEN FS = FI -SE
  124. 1131  IF SY$ = "*"  THEN FS = FI *SE
  125. 1141  IF SY$ = "/"  AND SE = 0  THEN DE = 1: GOTO 1161
  126. 1151  IF SY$ = "/"  THEN FS = FI/SE
  127. 1161  RETURN 
  128. 1171  POKE 32,0: POKE 33,40: POKE 34,0: POKE 35,24: POKE  -16368,0: HOME : END 
  129. 1181  PRINT : PRINT  CHR$(4);"OPEN ";F$: RETURN 
  130. 1191  PRINT : PRINT  CHR$(4);"CLOSE ";F$: RETURN 
  131. 1201  POKE 32,0: POKE 33,40: POKE 34,0: POKE 35,24: GOSUB 1191: PRINT : PRINT  CHR$(4);"RUN MENU"
  132. 1211  RESUME 
  133. 32000  REM COPYRIGHT 1986,1988 APPLE COMPUTER, INC.